package com.brillilab.service.core.space;

import com.brillilab.domain.po.space.Room;
import com.brillilab.domain.vo.space.SpaceSearchVo;

import java.util.List;

/**
 * @author wuzhiyu
 * @Title: IRoomService
 * @ProjectName brill_lab
 * @Description: TODO
 * @date 2018/11/139:54
 */
public interface IRoomService {
    /**
     * @return com.brillilab.domain.po.reagent.Room
     * @Description: only insert room data into db
     * @Params: [room]
     * @author wuzhiyu
     * @date 2018/11/15 9:26
     */
    Room add(Room room);

    /**
     * @return java.util.List<com.brillilab.domain.po.reagent.Room>
     * @Description: 获取lab下所有未删除房间
     * @Params: [labId]
     * @author wuzhiyu
     * @date 2018/11/15 9:26
     */
    List<Room> list(Long labId);

    /**
     * @return com.brillilab.domain.po.reagent.Room
     * @Description: get one room by roomId
     * @Params: [roomId]
     * @author wuzhiyu
     * @date 2018/11/15 9:27
     */
    Room get(Long roomId);

    /**
     * @return boolean
     * @Description: updateInfo room name
     * @Params: [id, name]
     * @author wuzhiyu
     * @date 2018/11/15 9:27
     */
    boolean update(Long id, String name);

    /**
     * @return boolean
     * @Description: only delete room data from db
     * @Params: [id]
     * @author wuzhiyu
     * @date 2018/11/15 9:27
     */
    boolean delete(Long id);

    /**
     * @return java.util.List<com.brillilab.domain.vo.reagent.SpaceSearchVo>
     * @Description: TODO
     * @Params: [labId, zone, reagentTypeId, labMemberId]
     * @author wuzhiyu
     * @date 2018/11/21 14:21
     */
    SpaceSearchVo searchSpace(Long labId, Integer zone, Long reagentTypeId, Long labMemberId);

}
